Software Refactoring Using Cooperative Parallel Evolutionary Algorithms

نویسندگان

  • Troh Josselin Dea
  • Marouane Kessentini
  • William I. Grosky
  • Kalyanmoy Deb
چکیده

Code bad smells represent symptoms of poor implementation choices. Previous studies found that these smells make source code more difficult to maintain, possibly also increasing its fault-proneness. There are plethora of approaches that identify bad smells based on code analysis techniques. We propose, in this paper, to consider code-smells correction as a distributed problem. Different techniques are combined during an optimization process to find a consensus regarding the correction of code-smells. To this end, we used Distributed Evolutionary algorithms (D-EA) where many evolutionary algorithms with different adaptations (fitness functions, solution representation, and change operators) are executed in parallel to solve a common goal which is the correction of code-smells. The statistical analysis of the obtained results provide evidence to support the claim that cooperative D-EA outperforms single population evolution and random search based on a benchmark of eight large open source systems where more than 86% of codesmells are fixed using the suggested refactorings. Keywords—Search-based software engineering, applications, software refactoring, evolutionary algorithms.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A partition-based algorithm for clustering large-scale software systems

Clustering techniques are used to extract the structure of software for understanding, maintaining, and refactoring. In the literature, most of the proposed approaches for software clustering are divided into hierarchical algorithms and search-based techniques. In the former, clustering is a process of merging (splitting) similar (non-similar) clusters. These techniques suffered from the drawba...

متن کامل

Refactoring, Way for Software Maintenance

Now days, most object-oriented software systems are developed using an evolutionary process model. In evolutionary development lifecycle, it needs to change from time to time. An important kind of change to objectoriented software is Refactoring. The motive of refactoring is to improve the quality of the software system, such as its understandability, extensibility and maintainability, without ...

متن کامل

JavaSpaces - An Affordable Technology for the Simple Implementation of Reusable Parallel Evolutionary Algorithms

Parallel evolutionary algorithms are often used to alleviate the large computational demands of standard evolutionary algorithms. Unfortunately, implementations of parallel evolutionary algorithms can be complicated and often require specific hardware and software settings. This frequently results in very problem-specific parallel evolutionary algorithms with little scope for reuse. This paper ...

متن کامل

Architectural Refactoring for Fast and Modular Bioinformatics Sequence Search

Bioinformaticists use the Basic Local Alignment Search Tool (BLAST) to characterize an unknown sequence by comparing it against a database of known sequences, thus detecting evolutionary relationships and biological properties. mpiBLAST is a widely-used, high-performance, opensource parallelization of BLAST that runs on a computer cluster delivering super-linear speedups. However, the Achilles ...

متن کامل

SORMASA: A tool for Suggesting Model Refactoring Actions by Metrics-led Genetic Algorithm

In this paper we introduce SORMASA, SOftware Refactoring using software Metrics And Search Algorithms, a refactoring decision support tool based on optimization techniques, in particular Genetic Algorithms.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016